package com.baymax.test.scene.replace

import android.text.TextUtils
import com.baymax.lib.replace.StringElementReplacer

/**
 * 内容替换管理类 {@link StringElementReplacer} 。
 */
object ReplaceManager {
    private const val TAG = "ReplaceManager"
    //templateId替换符
    private const val TEMPLATE_ID = "\${templateId}"
    //uid替换符
    private const val UID = "\${uid}"
    private const val USERID = "\${userid}"
    //字符串替换器
    private val stringElementReplacer = StringElementReplacer()

    init{
        registerReplacer()
    }

    /**
     * 内容替换器注册
     */
    fun registerReplacer(){
        //templateId替换注册
        stringElementReplacer.add(TEMPLATE_ID){
            var tempId = "tempId123"

            return@add it.replace(TEMPLATE_ID,tempId)
        //uid替换注册
        }.add(UID){
            return@add it.replace(UID,"uid345")
        }
    }

    /**
     * 内容替换器解注册
     */
    fun unregisterReplacer(){
        stringElementReplacer.clear()
    }

    /**
     * 字符串替换
     * 返回替换完成后的字符串
     */
    fun replace(str:String?):String{
        if (TextUtils.isEmpty(str)){
            return ""
        }
        return str?.let { stringElementReplacer.replace(it) }?:""
    }

}